#include <iostream>
#include <cstring>
using namespace std;
const int N=5*1e4+10;

int q[N],hh,tt;
int dp[N];
int a[N];
int n,t;
bool check(int lim)
{
	hh=0,tt=0;
	for(int i=1;i<=n;i++)
	{
		if(q[hh]<i-lim-1)
		{
			hh++;
		}
		dp[i]=dp[q[hh]]+a[i];
		while(hh<=tt && dp[q[tt]]>=dp[i])
			tt--;
		q[++tt]=i;
	}
	for(int i=n-lim;i<=n;i++)
		if(dp[i]<=t)
			return true;
	return false;
}
int main()
{
	cin>>n>>t;
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	
	int left=0,right=n;
	while(left<right)
	{
		int mid=(left+right)>>1;
		if(check(mid))
		{
			right=mid;
		}
		else{
			left=mid+1;
		}
	}
	cout<<right<<endl;
	return 0;
}
